package com.ruoyi.worker.mapper;

import com.ruoyi.worker.domain.*;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;
import java.util.Map;

@Mapper
public interface AttendanceStatisticsMapper {
    /**
     * 查询每日考勤人员考勤详情
     * @author 刘松山
     * @date 2021/10/18 14:42
     * @param u
     * @return java.util.List<com.ruoyi.worker.domain.UserDayAttendance>
     */
    List<UserDayAttendance> listUserDayAttendance(UserDayAttendance u);
   /**
    * 每日考勤汇总
    * @author 刘松山
    * @date 2021/10/18 14:42
    * @param u
    * @return java.util.List<com.ruoyi.worker.domain.UserDayAttendanceSum>
    */
    List<UserDayAttendanceSum> listUserDayAttendanceSum(UserDayAttendanceSum u);


    /**
     * 查询每月考勤人员考勤详情
     * @author 刘松山
     * @date 2021/10/18 14:42
     * @param u
     * @return java.util.List<com.ruoyi.worker.domain.UserDayAttendance>
     */
    List<UserMonthAttendance> listUserMonthAttendance(UserMonthAttendance u);
    /**
     * 每月考勤汇总
     * @author 刘松山
     * @date 2021/10/18 14:42
     * @param u
     * @return java.util.List<com.ruoyi.worker.domain.UserDayAttendanceSum>
     */
    List<UserMonthAttendanceSum> listUserMonthAttendanceSum(UserMonthAttendanceSum u);
    /**
     * 保存每日考勤汇总
     * @author 刘松山
     * @date 2021/10/19 9:21
     * @param u
     * @return int
     */
    int addUserDayAttendanceSum(UserDayAttendanceSum u);
     /**
      * 根据日期获取考勤汇总
      * @author 刘松山
      * @date 2021/10/19 13:27
      * @param dateTime
      * @return com.ruoyi.worker.domain.UserDayAttendanceSum
      */
     List<UserDayAttendanceSum> getUserDayAttendanceSum(String dateTime);
    /**
     * 保存每日考勤员工明细记录
     * @author 刘松山
     * @date 2021/10/19 9:21
     * @param list
     * @return int
     */
    int addUserDayAttendance(List<UserDayAttendance> list);
    /**
     * 删除当天已经有汇总记录
     * @author 刘松山
     * @date 2021/10/19 13:25
     * @param dateTime
     * @return int
     */
    int delUserDayAttendanceSum(String dateTime);
    /**
     * 删除每日考勤用户明细
     * @author 刘松山
     * @date 2021/10/19 13:26
     * @param parentId
     * @return int
     */
    int delUserDayAttendance(long parentId);
    /**
     * 获取用户是否有考勤组
     * @author 刘松山
     * @date 2021/10/19 9:49
     * @param map
     * @return java.util.List<java.util.Map<java.lang.String,java.lang.Object>>
     */
    List<Map<String,Object>> listGroupByUserName(Map<String,Object> map);
    /**
     * 查询用户是否排班了
     * @author 刘松山
     * @date 2021/10/19 11:00
     * @param map
     * @return java.util.List<java.util.Map<java.lang.String,java.lang.Object>>
     */
    List<UserDayAttendance> listUserScheduleInfo(Map<String,Object> map);
    /**
     * 获取，某天所有用户的排班记录
     * @author 刘松山
     * @date 2021/10/19 14:03
     * @param dateTime
     * @return java.util.List<com.ruoyi.worker.domain.UserSchedule>
     */
    List<Map<String,Object>> listUserSchedule(String dateTime);
     /**
      * 获取当天休息的用户
      * @author 刘松山
      * @date 2021/10/19 19:38
      * @param dateTime
      * @return java.util.List<java.util.Map<java.lang.String,java.lang.Object>>
      */
     List<Map<String,Object>> listRestSchedule(String dateTime);
     /**
      * 获取某个月份 一组用户的打卡次数
      * @author 刘松山
      * @date 2021/10/21 17:46
      * @param map
      * @return java.util.List<java.util.Map<java.lang.String,java.lang.Object>>
      */
    List<Map<String,Object>>  listUserScheduleTimeShif(Map<String,Object> map);
}
